Technote 1133

Version Territory

ñ⁄éü

ÉoÅ[ÉWÉáÉìî‘çÜÇÃì‡óe

ÉAÉbÉvÉãÇÃÉoÅ[ÉWÉáÉìî‘çÜÇÃï˚éÆ

ÉoÅ[ÉWÉáÉìî‘çÜÇÃî‰är

'vers' ÉäÉ\Å[ÉXÇÃç\ë¢ëÃ

É_ÉEÉìÉçÅ[Éh

Finder 6.1 Ç≈ÉoÅ[ÉWÉáÉì ('vers') ÉäÉ\Å[ÉXÇ™ì±ì¸Ç≥ÇÍÅAÉtÉ@ÉCÉãÇÃçÏê¨é“Ç™ÉtÉ@ÉCÉãÇÃÉoÅ[ÉWÉáÉìÇ»ÇÁǗDžǪÇÃÉtÉ@ÉCÉãÇä‹ÇfiÉtÉ@ÉCÉãåQÇÃÉoÅ[ÉWÉáÉìÇéwíËÇ∑ÇÈDZÇΔÇ™Ç≈Ç´ÇÈÇÊǧDžǻÇËNjǵÇΩÅBDZÇÃÉäÉ\Å[ÉXÇÃå`éÆÇÕÅwInside Macintosh: Macintosh Toolbox EssentialsÅxÇ…ê‡ñæÇ≥ÇÍǃǢNjÇ∑ÅB

DZÇà TECHNOTE (ÉIÉäÉWÉiÉãÇÕÅuTECHNOTE OV 12 - Version TerritoryÅv) Ç≈ÇÕÅAÉoÅ[ÉWÉáÉìÅEÉäÉ\Å[ÉXì‡Ç≈égópÇ≥ÇÍÇÈ NumVersion ç\ë¢ëÃÇÃÉfÅ[É^å`éÆÇ…ǬǢǃê‡ñæÇµÅAÉAÉbÉvÉãÇ≈çÃópǵǃǢÇÈÉoÅ[ÉWÉáÉìî‘çÜÇÃïtÇØï˚Ç…äÓÇ√ǢǃÉoÅ[ÉWÉáÉìÅEÉäÉ\Å[ÉXÇégópÇ∑ÇÈÉKÉCÉhÉâÉCÉìÇíÒãüǵNjÇ∑ÅB

Ç«ÇÒÇ»éÌófiÇ≈džÇÍÅAÉvÉçÉOÉâÉÄÅEÉtÉ@ÉCÉãÇäOïîÇ…îzïzÇ∑ÇÈ Mac OS ÉvÉçÉOÉâÉ}ÇÕÅAïKÇ∏ÉtÉ@ÉCÉãÇ…ÉoÅ[ÉWÉáÉìÅEÉäÉ\Å[ÉXÇïtÇØÇƒÇ≠ÇæÇ≥Ç¢ÅB

ÉoÅ[ÉWÉáÉìî‘çÜÇÃì‡óe

ÉoÅ[ÉWÉáÉìÅEÉäÉ\Å[ÉXÇÃç\ë¢ÇÕÅwInside MacintoshÅxÇ…ê‡ñæÇ≥ÇÍǃǢNjÇ∑Ç™ÅANumVersion ç\ë¢ëÃÇÃÉtÉBÅ[ÉãÉhÇ∑Ç◊ǃÇÃÉfÅ[É^å`éÆÇ™ñæämÇ…ê‡ñæÇ≥ÇÍǃǢÇÈÇÌÇØÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBNumVersion ç\ë¢ëÃÇÕÉoÅ[ÉWÉáÉìÅEÉäÉ\Å[ÉXì‡Çà numericVersion ÉtÉBÅ[ÉãÉhÇÃÉfÅ[É^É^ÉCÉvÇ≈Ç∑ÅBUniversal Interfaces 3 Çà MacTypes.h ì‡ÇÃÉRÉÅÉìÉgLJdžNjÇËñÇ…óßÇøÇ‹ÇπÇÒÅBnumericVersion ç\ë¢ëÃÇÃÉtÉBÅ[ÉãÉhÇÃì‡óeDžǬǢǃàŸÇ»ÇÈâéflÇê∂Ç∂Ç≥ÇπÇÈâ¬î\ê´Ç™Ç†ÇÈÇ©ÇÁÇ≈Ç∑ÅB

NumVersion ç\ë¢ëÃÇÃíÜÇ…ÇÕ 4 ǬÇà UInt8 ÇÃílÇ™íËã`Ç≥ÇÍǃǢNjÇ∑ÅBDZÇÃÇΩÇflÅAÉoÅ[ÉWÉáÉìî‘çÜÇÃî‰ärÇÃç€ÅANumVersion ÇÃílÇç\ë¢ëÃÇΔǵǃàµÇ¢å¬ÅXÇÃÉtÉBÅ[ÉãÉhÇ…ÉAÉNÉZÉXÇ∑ÇÈDZÇΔLJÅAïÑçÜǻǵêÆêî (unsigned long) Ç…ÉLÉÉÉXÉgÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBÉoÅ[ÉWÉáÉìî‘çÜÇ unsigned long ÇÃílÇΔǵǃî‰ärÇ∑ÇÈç€Ç…ÇÕÅAãCÇÇ¬ÇØÇ»ÇØÇÍnjǻÇÁǻǢñ‚ëËǙdžÇËÇ‹Ç∑ÅB

majorRev ÇΔ minorAndBugRev ÉtÉBÅ[ÉãÉhÇÃílÇÕäeåÖÇ™ 0Å`9 ÇÃílÇéÊÇÈ 2 êi⪠10 êiêî (binary-coded decimal/BCD) å`éÆÇ≈ï€ë∂Ç≥ÇÍÇ‹Ç∑ (í èÌÇà 2 êiêîÇÃîÕàÕÇÕ 0Å`15 Ç≈Ç∑)ÅBmajorRev ÉtÉBÅ[ÉãÉhÇÃì‡óeÇÕÅuÉÅÉWÉÉÅ[Ç»â¸í˘ÉåÉxÉãÅvÇï\Ç∑ 2 åÖÇà BCD Ç≈Ç∑ÅBminorAndBugRev ÉtÉBÅ[ÉãÉhÇÃì‡óeÇÕÅAǪÇÍǺÇÍ 1 åÖÇà BCD ÇΔǵǃï€ë∂Ç≥ÇÍÇΩ 2 ǬÇÃílÇ≈ÅAǪÇÍǺÇÍÅuÉ}ÉCÉiÅ[Ç»â¸í˘ÉåÉxÉãÅvÇΔÅuÉoÉOâ¸í˘ÉåÉxÉãÅvÇï\ǵNjÇ∑ÅBǬNjÇËÅAÉoÅ[ÉWÉáÉìî‘çÜÇÃéÊÇËìæÇÈîÕàÕÇÕ 0.0.0 Ç©ÇÁ 99.9.9 ÇΔǢǧDZÇΔÇ≈Ç∑ÅB

nonRelRev ÉtÉBÅ[ÉãÉhÇÃílÇÕïÑçÜǻǵÇà 2 êiêÆêîÇÃílÇΔǵǃï€ë∂Ç≥ÇÍÇ‹Ç∑ÅBǬNjÇË nonRelRev ÉtÉBÅ[ÉãÉhÇÃîÕàÕÇÕ 0 Ç©ÇÁ 255 Ç…Ç»ÇËÇ‹Ç∑ÅBDZÇÍÇ™ÅAÇ¢ÇøÇŒÇÒä‘à·Ç¶ÇƒâéflÇ≥ÇÍÇÈÉtÉBÅ[ÉãÉhÇ≈Ç∑ÅBǬNjÇËÅA2 êiêîÇΔǵǃÇ≈ÇÕÇ»Ç≠ÅABCD ÇÃílÇΔâéflÇ≥ÇÍǃǵNjǧÇÃÇ≈Ç∑ÅB

Å@

nonRelRev Ç BCD ÇΔǵǃâéflÇ∑ÇÈDZÇΔÇ≈à¯Ç´ãNDZÇ≥ÇÍÇÈñ‚ëËDžǬǢǃ

ÉoÅ[ÉWÉáÉìÅEÉäÉ\Å[ÉXÇàÍä—ǵǃìØÇ∂ï˚ñ@Ç≈çÏê¨Ç∑ÇÈå¿ÇËÅABCD ílÇégǧDZÇΔÇ≈ê∂Ç∂ÇÈà·Ç¢ÇÕÅAóòópâ¬î\Ç» nonRelRev ílÇ™è≠Ç»Ç≠Ç»ÇÈÇΔǢǧDZÇΔÇæÇØÇ≈Ç∑ÅBó·Ç¶ÇŒÅABCD ÇÃèÍçáÇÕ 100 Ç‹Ç≈ÅA2 êiêîÇÃèÍçáÇÕ 256 Ç‹Ç≈Ç≈Ç∑ÅBDZDZÇ≈ÇÕàÍä—ê´Ç™èdóvÇ≈Ç∑ÅBBCD ílÇΔ 2 êiílÇÕÅAÇΩÇΔǶï\åªÇ∑ÇÈílÇ™ìØÇ∂Ç≈LJÅAî‰ärÇ∑ÇÈÇΔìØÇ∂Ç…Ç»ÇÁǻǢǩÇÁÇ≈Ç∑ÅBó·Ç¶ÇŒÅAâ¸í˘ÉåÉxÉãÇà 10 ÇÕÅABCD Ç≈ÇÕ 0x10ÅA2 êiêîÇ≈ÇÕ 0x0A Ç…Ç»ÇËÇ‹Ç∑ÅB

ÉoÅ[ÉWÉáÉìî‘çÜÇÃî‰ärÇÕÇΩǢǃǢÇÃèÍçáÅAnumericVersion ÉtÉBÅ[ÉãÉhÇÇ‹Ç∏ unsigned long Ç…ÉLÉÉÉXÉgǵǃǩÇÁçsÇÌÇÍÇÈÇΩÇflÅAÉoÅ[ÉWÉáÉìÅEÉäÉ\Å[ÉXÇà nonRelRev ÉtÉBÅ[ÉãÉhÇ™ BCD ÇΔǵǃçÏê¨Ç≥ÇÍǃǢǃLJÅAÇ‹ÇΩ 2 êiêîÇ≈ï\åªÇ≥ÇÍǃǢǃLJÅAìØÇ∂Ç≠àÍä—ǵÇΩï˚ñ@Ç≈çÏê¨Ç≥ÇÍǃǢÇÈǩǨÇËÇÕÅAî‰ärÇ…âeãøÇÕó^ǶNjÇπÇÒÅB

nonRelRev Ç BCD ÇΔǵǃâéflÇ∑ÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕë∂ç›ÇµÇ‹Ç∑ÅBóLñºÇ»Ç‡ÇÃÇ≈ÇÕ ResEdit ǙǪǧÇ≈Ç∑ÅBResorcerer ÇÕÉoÅ[ÉWÉáÉì 2.0 Ç≈ nonRelRev ÉtÉBÅ[ÉãÉhÇïÑçÜǻǵÇà 2 êiêîÇΔǵǃê≥ǵÇ≠âéflÇ∑ÇÈÇÊǧïœçXÇ≥ÇÍNjǵÇΩÅB


ÉAÉbÉvÉãÇÃÉoÅ[ÉWÉáÉìî‘çÜÇÃï˚éÆ

ÉAÉbÉvÉãÇÕàÍíËÇÃï˚éÆÇ≈É\ÉtÉgÉEÉFÉAêªïiÇ…ÉoÅ[ÉWÉáÉìî‘çÜÇïtÇØÇƒÇ¢Ç‹Ç∑ÅBäFÇ≥ÇÒLJDZÇÍÇå©èKǡǃǛǃÇÕǢǩǙÇ≈ǵÇÂǧÅBï\ 1 ÇÕDZÇÃï˚éÆÇÇ‹ÇΔÇflÇΩLJÇÃÇ≈ÅA3 ǬÇÃêîéöÇégÇ¢ÅAǪÇÍǺÇÍÇÉsÉäÉIÉhÇ≈ãÊêÿÇËÇ‹Ç∑ÅB

â¸íËçÄñ⁄

ÉoÅ[ÉWÉáÉì

ç≈èâÇÃÉäÉäÅ[ÉX

1.0

É}ÉCÉiÅ[Ç»â¸í˘

1.1

ÉoÉOÉtÉBÉbÉNÉX

1.1.1

ç≈èâÇÃÉÅÉWÉÉÅ[Ç»â¸í˘

2.0

Table 1-ÉAÉbÉvÉãÇÃÉoÅ[ÉWÉáÉìî‘çÜÇÃïtÇØï˚

ÉÅÉWÉÉÅ[Ç»â¸í˘ÇÃÉäÉäÅ[ÉXÇ≈ÇÕç≈èâÇÃêîéöÇÅAÉ}ÉCÉiÅ[Ç»â¸í˘ÇÃÉäÉäÅ[ÉXÇ≈ÇÕ 2 ǬÇflÇÃêîéöÇÅAÉoÉOÇèCê≥ǵÇΩÉoÅ[ÉWÉáÉìÇÃÉäÉäÅ[ÉXÇ≈ÇÕ 3 ǬÇflÇÃêîéöÇëùÇ‚Ç∑DZÇΔÇ…íçñ⁄ǵǃÇ≠ÇæÇ≥Ç¢ÅB

êªïiÇÃäJî≠âflíˆÇ≈ÇÕÅAÉAÉbÉvÉãÇÕäJî≠íiäK (stage) Çé¶Ç∑âpéöÇç≈å„Ç…ïtÇØÇÈï˚éÆÇçÃópǵǃǢNjÇ∑ÅBï\ 2 ÇÕǪÇÃó·Çï\ǵNjÇ∑ÅB

â¸íËçÄñ⁄

ÉoÅ[ÉWÉáÉì

íiäK

ç≈èâÇÃÉoÅ[ÉWÉáÉì

1.0d1, 1.0d2, ...

development

êªïiã@î\ÇåàíË (ÉeÉXÉgäJén)

1.0a1, 1.0a2, ...

alpha

êªïiÇ™à¿íË (ç≈èIÉeÉXÉgäJén)

1.0b1, 1.0b2, ...

beta

ç≈èIåÛï‚/FC (èoâ◊äJéníºëO)

1.0fc1, 1.0fc2, ...

final

ç≈èâÇÃâ¸í˘î≈Çèoâ◊/GM

1.0

final

É}ÉCÉiÅ[Ç»â¸í˘

1.1d1,...,1.1a1,...,1.1b1,...,1.1

ÉoÉOÉtÉBÉbÉNÉX

1.1.1d1,...,1.1.1a1,...,1.1.1b1,...,1.1.1

ÉÅÉWÉÉÅ[Ç»â¸í˘

2.0d1,...,2.0a1,...,2.0b1,...,2.0

Table 2-äJî≠âflíˆÇÃÉoÅ[ÉWÉáÉìî‘çÜ

ÉoÅ[ÉWÉáÉìî‘çÜÇÃî‰är

ÉoÅ[ÉWÉáÉìî‘çÜÇ unsigned long Ç…ÉLÉÉÉXÉgǵǃî‰ärÇ∑ÇÈÇΔÅAñ‚ëËÇ™ãNDZÇÈèÍçáǙdžÇËÇ‹Ç∑ÅBDZÇÃï˚ñ@Ç≈î‰ärÇçsǧÇΔÅAç≈èâÇÃèoâ◊ÉoÅ[ÉWÉáÉì (Golden Master/GM) Ç™ç≈èIåÛï‚ (Final Candidate/FC) ÇÃî‘çÜÇÊÇËLJå√Ç¢ÇΔǢǧåãâ Ç…ǻǡǃǵNjǧÇÃÇ≈Ç∑ÅB

GM ÉäÉäÅ[ÉXÇÃÉoÅ[ÉWÉáÉìÉäÉ\Å[ÉXÇÕÅAäJî≠íiäK (stage) ÉtÉBÅ[ÉãÉhÇ™ÅuÉtÉ@ÉCÉiÉãÅvÇï\Ç∑ÉRÅ[ÉhÇ…ê›íËÇ≥ÇÍÅAnonRelRev ÉtÉBÅ[ÉãÉhÇÕÉ[ÉçÇ…ê›íËÇ≥ÇÍÇ‹Ç∑ÅBFC ÉäÉäÅ[ÉXÇÃÉoÅ[ÉWÉáÉìÅEÉäÉ\Å[ÉXÇÕÇΩǢǃǢÅAäJî≠íiäKÉtÉBÅ[ÉãÉhÇÕÅuÉtÉ@ÉCÉiÉãÅvÇ…ê›íËÇ≥ÇÍÅAnonRelRev ÉtÉBÅ[ÉãÉhÇÕÉ[ÉçÇÊÇËLJëÂÇ´Ç¢ílDžǻǡǃǢNjÇ∑ÅBDZDZÇ≈ÇÃñ‚ëËÇÕÉoÅ[ÉWÉáÉìî‘çÜÇ unsigned long Ç…ÉLÉÉÉXÉgÇ∑ÇÈÇΔÅAFC ÉoÅ[ÉWÉáÉìÇÃÉoÅ[ÉWÉáÉìÅEÉäÉ\Å[ÉXÇà nonRelRev ÉtÉBÅ[ÉãÉhÇ™É[ÉçÇ≈ǻǢÇΩÇflÅAé¿ç€Ç…ÇÕàÍî‘êVǵǢÉoÅ[ÉWÉáÉìÇ≈džÇÈÇÕÇ∏Çà GM ÉoÅ[ÉWÉáÉìÇÊÇËLJëÂÇ´Ç≠ǻǡǃǵNjǧÅAÇ∑Ç»ÇÌÇøêVǵǢÇΔǢǧî‰äråãâ Ç…ǻǡǃǵNjǧDZÇΔÇ≈Ç∑ÅB

DZÇÍÇ‹Ç≈ÇÊÇ≠ãNDZǡÇΩñ‚ëËÇÕÅAìØÇ∂êªïiÇÃç≈èIåÛï‚ÉoÅ[ÉWÉáÉìÇ™Ç∑Ç≈Ç…ÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǃǢÇÈÇΔDZÇÎÇ…èoâ◊ÉoÅ[ÉWÉáÉìÇÃÉpÉbÉPÅ[ÉWÇè„èëÇ´ÉCÉìÉXÉgÅ[ÉãÇ≈ǴǻǢÇΔǢǧLJÇÃÇ≈ǵÇΩÅBÉCÉìÉXÉgÅ[ÉâÇ™ÅAêVǵǢÉoÅ[ÉWÉáÉìÇÃÉtÉ@ÉCÉãÇíuÇ´ä∑ǶÇÊǧÇΔǵǃǢÇÈÅAÇΔǢǧåxçêÇèoÇ∑ÇÃÇ≈Ç∑ÅBÇ‡ÇøÇÎÇÒǪǧÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBÉAÉbÉvÉãÇÃÉCÉìÉXÉgÅ[Éâ (Ç®ÇÊÇ—ëºÇÃëÂîºÇÃÉCÉìÉXÉgÅ[Éâ) ÇÕÅAÉoÅ[ÉWÉáÉìÅEÉäÉ\Å[ÉXÇÃå¬ÅXÇÃÉtÉBÅ[ÉãÉhÇî‰ärÇ∑ÇÈDZÇΔÇ≈DZÇÃñ‚ëËÇâÒîǵǃǢNjÇ∑ÅB

éüÇÃä÷êîÇÕ 2 ǬÇà NumVersion ÇÃílÇê≥ǵÇ≠î‰ärǵǃǢNjÇ∑ÅB

pascal SInt16 CompareVersions( NumVersion *vers1, NumVersion *vers2 )
{
    UInt16 nonRelRev1, nonRelRev2;
         
    if (vers1->majorRev        > vers2->majorRev)        return  1;
    if (vers1->majorRev        < vers2->majorRev)        return -1;
    if (vers1->minorAndBugRev  > vers2->minorAndBugRev)  return  1;
    if (vers1->minorAndBugRev  < vers2->minorAndBugRev)  return -1;
    if (vers1->stage           > vers2->stage)           return  1;
    if (vers1->stage           < vers2->stage)           return -1;
         
    nonRelRev1 = vers1->nonRelRev;
    nonRelRev2 = vers2->nonRelRev;
         
    if (vers1->stage == finalStage) {
        if (vers1->nonRelRev == 0)             nonRelRev1 = 0xFFFF;
        if (vers2->nonRelRev == 0)             nonRelRev2 = 0xFFFF;
    }
         
    if (nonRelRev1 > nonRelRev2)                         return  1;
    if (nonRelRev1 < nonRelRev2)                         return -1;
         
    return 0;
}
         

'vers' ÉäÉ\Å[ÉXÇÃç\ë¢ëÃ

'vers' ÉäÉ\Å[ÉXÇÃç\ë¢ëÃÇÕÅAMacTypes.h (Universal Interfaces 3.1 Ç…ì¸Ç¡ÇƒÇ¢Ç‹Ç∑) Ç…éüÇÃÇÊǧDžíËã`Ç≥ÇÍǃǢNjÇ∑ÅB

type 'vers' {
    hex byte;                       /* ÉÅÉWÉÉÅ[Ç»â¸í˘ - BCD */
    hex byte;                       /* É}ÉCÉiÅ[Ç»â¸í˘ - BCD */
    hex byte    development = 0x20, /* ÉäÉäÅ[ÉXíiäK         */
                alpha = 0x40,
                beta = 0x60,
                final = 0x80, /* Ç‹ÇΩÇÕ */ release = 0x80;
    hex byte;                       /* èoâ◊ëOÇÃÉäÉäÅ[ÉXî‘çÜ  */
    integer;                        /* ÉäÅ[ÉWÉáÉìÉRÅ[Éh      */
    pstring;                        /* íZÇ¢ÉoÅ[ÉWÉáÉìî‘çÜ    */
    pstring;                        /* í∑Ç¢ÉoÅ[ÉWÉáÉìî‘çÜ    */
};

DZÇÍÇ…ëŒâûÇ∑ÇÈ VersRec ç\ë¢ëÃÇÕÅAMacTypes.h (Universal Interfaces 3.1 Ç…ì¸Ç¡ÇƒÇ¢Ç‹Ç∑) Ç…éüÇÃÇÊǧDžíËã`Ç≥ÇÍǃǢNjÇ∑ÅB

struct VersRec {
                                 /* 'vers' ÉäÉ\Å[ÉXå`éÆ */
    NumVersion  numericVersion;  /* ÉGÉìÉRÅ[ÉhÇ≥ÇÍÇΩÉoÅ[ÉWÉáÉìî‘çÜ */
    short       countryCode;     /* Int'l ÉÜÅ[ÉeÉBÉäÉeÉBÇÃçëÉRÅ[Éh */
    Str255      shortVersion;    /* ÉoÅ[ÉWÉáÉìî‘çÜï∂éöóÒ - ç≈à´ÇÃèÍçá */
    Str255      reserved;        /* ÉpÉbÉNÇ≥ÇÍÇΩ longMessage ï∂éöóÒ
                                    shortVersion Ç…ë±Ç≠ */
};
typedef struct VersRec           VersRec;
typedef VersRec *                VersRecPtr;
typedef VersRecPtr *             VersRecHndl;

NumVersion ç\ë¢ëÃÇÕÅAMacTypes.h (Universal Interfaces 3.1 Ç…ì¸Ç¡ÇƒÇ¢Ç‹Ç∑) Ç…éüÇÃÇÊǧDžíËã`Ç≥ÇÍǃǢNjÇ∑ÅB

struct NumVersion {
               /* 'vers' ÉäÉ\Å[ÉXÇÃêîílïîï™ */
    UInt8      majorRev;       /* ÉoÅ[ÉWÉáÉìî‘çÜÇÃç≈èâÇÃïîï™ - BCD */
    UInt8      minorAndBugRev; /* ÉoÅ[ÉWÉáÉìî‘çÜÇÃëÊ 2ÅAëÊ 3 ÇÃïîï™ - BCD
                                  ÉoÉCÉgÇã§óL */
    UInt8      stage;          /* íiäKÉRÅ[Éh:
                                  dev, alpha, beta, final */
    UInt8      nonRelRev;      /* èoâ◊ëOÇÃÉäÉäÅ[ÉXÉåÉxÉã */
};
typedef struct NumVersion      NumVersion;
         

NumVersionVariant É^ÉCÉvÇÃç\ë¢ëÃÇÕÅAMacTypes.h (Universal Interfaces 3.1 Ç…ì¸Ç¡ÇƒÇ¢Ç‹Ç∑) Ç…éüÇÃÇÊǧDžíËã`Ç≥ÇÍǃǢNjÇ∑ÅB

union NumVersionVariant {
                 /* NumVersionVariant ÇÕ NumVersion Ç 32 ÉrÉbÉgílÇΔǵǃÉAÉNÉZÉX
                    Ç≈Ç´ÇÈÇÊǧDžÇ∑ÇÈÉâÉbÉpÅ[ */
    NumVersion       parts;
    unsigned long    whole;
};
typedef union NumVersionVariant NumVersionVariant;
         

ÉTÅ[ÉhÉpÅ[ÉeÉBÇÃÉTÉCÉgÇ‚êªïiDžǬǢǃÇÃãLèqÇÕèÓïÒíÒãüÇÃñ⁄ìIÇ≈ÇÃÇ›çsǡǃǮÇËÅAéxéùÇ‚êÑëEÇçsǧLJÇÃÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBÉAÉbÉvÉãÇÕDZDZÇ≈éÊÇËè„Ç∞ÇΩÉxÉìÉ_Å[Ç‚êªïiÇÃëIëÅAê´î\ÅAópìrDžǬǢǃàÍêÿÇÃê”îCÇïâǢNjÇπÇÒÅB

éQçlï∂å£


É_ÉEÉìÉçÅ[Éh

Acrobat version of Inside Macintosh: Macintosh Toolbox Essentials

Universal Interfaces 3.1


â¸î≈óöó

  • 1988 îN 4 åéÅAèâî≈èëÇ´â∫ÇÎǵ
  • 1990 îN 10 åéÅAÅuTechnote OV 12 -- Version Territory to reflect the changes in MPW C 3.1ÅvÇΔǵǃâ¸í˘
  • 1998 îN 6 åéÅANumVersion ç\ë¢ëÃÇÃópìrÇñæämÇ…Ç∑ÇÈÇΩÇflçXêV

çXêVì˙: 1998îN 6 åé 1 ì˙